// 发布文章路由处理函数模块
// 发布文章路由对应处理函数
// 导入数据库操作模块
const db = require('../db/index')

// 添加文章列表
exports.addArticle = function (req, res) {
  console.log(req.body)
  // 定义插入数据库的SQL语句
  const insertSQL = 'insert into blog_article set ?'
  // 执行SQL语句
  db.query(insertSQL, req.body, (err, result) => {
    // SQL执行错误
    if (err) return res.cc(err.message)
    // 影响行数不为1
    if (result.affectedRows !== 1) return res.cc('发布失败!')
    // 插入成功
    res.cc('发布成功!', 0)
  })
}

// 获取文章列表路由处理函数
exports.getArticle = (req, res) => {
  // console.log(req.query)
  // 定义查询的SQL语句
  let selectSQL = 'select * from blog_article where is_delete=0'
  // 执行SQL
  db.query(selectSQL, (err, result) => {
    // SQL语句执行失败
    if (err) return res.cc(err.message)
    // 没查到数据
    if (result.length < 1) return res.cc('暂时还没有文章')
    // 获取成功
    // 当前页
    let curpage = parseInt(req.query.curpage)

    // console.log(curpage)
    // 一页显示的条数
    let pagesize = parseInt(req.query.pageSize) // 前段不传的话就用这个默认的
    // console.log(pagesize)
    // 总页码
    let sumpage = Math.ceil(result.length / pagesize)
    // 总条数
    let total = result.length
    if (curpage == '') {
      let data = result.splice(0, pagesize)
      data.forEach((item) => {
        let dt = new Date(Date.parse(item.create_time))
        let timeStr =
          dt.getFullYear() +
          '-' +
          (dt.getMonth() + 1) +
          '-' +
          dt.getDate() +
          ' ' +
          dt.getHours() +
          ':' +
          dt.getMinutes() +
          ':' +
          dt.getSeconds()
        return item.create_time = timeStr
      })
      console.log(data)
      return res.send({
        sumpage,
        total,
        status: 0,
        msg: '获取成功',
        data
      })
    } else {
      let data = result.splice((curpage - 1) * 5, pagesize)
      // console.log(data)
      // 将数据库的时间转换为js时间格式
      data.forEach((item) => {
        let dt = new Date(Date.parse(item.create_time))
        let timeStr =
          dt.getFullYear() +
          '-' +
          (dt.getMonth() + 1) +
          '-' +
          dt.getDate() +
          ' ' +
          dt.getHours() +
          ':' +
          dt.getMinutes() +
          ':' +
          dt.getSeconds()
        return item.create_time = timeStr
      })
      console.log(data)
      return res.send({
        sumpage,
        total,
        status: 0,
        msg: '获取成功',
        data
      })
    }
  })
}

// 通过id获取数据
exports.getArticleById = function(req, res) {
  // 定义SQL语句
  const selectSQL = 'select * from blog_article where id=?'
  // 执行SQL语句
  db.query(selectSQL, req.query.id, (err, result) => {
    // SQL语句执行失败
    if (err) return res.cc(err.message)
    // 没有查到数据
    if (result.length < 1) return res.cc('没有查到对应数据')
    // 获取成功
    res.send({
      data: {
        // 文章标题
        title: result[0].title,
        // 图片地址
        coverimg: result[0].cover_img,
        // 文章描述
        describes: result[0].describes,
        // 文章内容
        content: result[0].content,
        // 分类
        cateName: result[0].cateName,
        // 标签
        tagName: result[0].tagName
      },
      status: 0,
      msg: '获取成功'
    })
  })
}


// 修改文章
exports.updateArticleInfo = function(req, res) {
  console.log(req.body)
  const { cateName, id, title, content, cover_img, describes, tagName, create_time } = req.body
  // 定义修改SQL语句
  // const updateSQL = 'update blog_article set describes=? where id=?'
  const updateSQL = 'update blog_article set cateName=?, title=?, content=?, cover_img=?, describes=?, tagName=?, create_time=? where id=?'
  // 执行SQL语句
  //
  db.query(updateSQL, [cateName, title, content, cover_img, describes, tagName, create_time, id], (err, result) => {
    // SQL语句执行错误
    if (err) return res.cc(err.message)
    // 影响行数不为1
    if (result.affectedRows !== 1) return res.cc('保存失败')
    // 保存成功
    res.cc('保存成功', 0)
  })
}

// 删除文章
exports.deleteArticle = (req, res) => {
  // 编写删除的SQL语句
  const deleteSQL = 'update blog_article set is_delete=1 where id=?'
  // 执行SQL语句
  db.query(deleteSQL, req.body.id, (err, result) => {
    // SQL执行错误
    if (err) return res.cc(err.message)
    // 影响行数不为1
    if (result.affectedRows !== 1) return res.cc('删除失败')
    // 删除成功
    res.cc('删除成功', 0)
  })
}
